fix mfn check of gnttab_transfer().
authorsos22@douglas.cl.cam.ac.uk <sos22@douglas.cl.cam.ac.uk>
Tue, 4 Apr 2006 13:04:32 +0000 (14:04 +0100)
committersos22@douglas.cl.cam.ac.uk <sos22@douglas.cl.cam.ac.uk>
Tue, 4 Apr 2006 13:04:32 +0000 (14:04 +0100)
Signed-off-by: Steven Smith, sos22@cam.ac.uk
From: Isaku Yamahata <yamahata@valinux.co.jp>

xen/common/grant_table.c

index a45e87a99d3ff40b6b9d1caf01a929af587df249..3c2b46ccf0eeb483739ceba36ef029ed794c6ee8 100644 (file)
@@ -618,8 +618,10 @@ gnttab_transfer(
             return -EFAULT;
         }
 
+        mfn = gmfn_to_mfn(d, gop.mfn);
+
         /* Check the passed page frame for basic validity. */
-        if ( unlikely(!mfn_valid(gop.mfn)) )
+        if ( unlikely(!mfn_valid(mfn)) )
         { 
             DPRINTK("gnttab_transfer: out-of-range %lx\n",
                     (unsigned long)gop.mfn);
@@ -627,7 +629,6 @@ gnttab_transfer(
             goto copyback;
         }
 
-        mfn = gmfn_to_mfn(d, gop.mfn);
         page = mfn_to_page(mfn);
         if ( unlikely(IS_XEN_HEAP_FRAME(page)) )
         {